The BinProlog experience: Architecture and implementation choices for continuation passing Prolog and first-class logic engines
نویسنده
چکیده
We describe the BinProlog system’s compilation technology, runtime system and its extensions supporting first-class Logic Engines while providing a short history of its development, details of some of its newer re-implementations as well as an overview of the most important architectural choices involved in their design. With focus on its differences with conventional WAM implementations, we explain key details of BinProlog’s compilation technique, which replaces the WAM with a simplified continuation passing runtime system (the “BinWAM”), based on a mapping of full Prolog to binary logic programs. This is followed by a description of a term compression technique using a “tag-on-data” representation. Later derivatives, the Java-based Jinni Prolog compiler and the recently developed Lean Prolog system refine the BinProlog architecture with first-class Logic Engines, made generic through the use of an Interactor interface. An overview of their applications with focus on the ability to express at source level a wide variety of Prolog built-ins and extensions, covers these newer developments. To appear in Theory and Practice of Logic Programming (TPLP).
منابع مشابه
Delimited Continuations in Prolog: Semantics, Use, and Implementation in the WAM
An implementation of a delimited continuations, known in the functional programming world, is shown in the context of the WAM, and more particular in hProlog. Three new predicates become available to the user: reset/3 and shift/1 for delimiting and capturing the continuation, and call continuation/1 for calling it. The underlying low-level built-ins and modifications to the system are described...
متن کاملLogic Programming and Logic Grammars with Binarization and First-order Continuations
Continuation passing binarization and specialization of the WAM to binary logic programs have been proven practical implementation techniques in the BinProlog system. In this paper we investigate the additional beneets of having rst order continuations at source level. We devise a convenient way to manipulate them by introducing multiple-headed clauses which give direct access to continuations ...
متن کاملBacktrackable State with Linear Affine Implication and Assumption Grammars
A general framework of handling state information for logic programming languages on top of backtrackable assumptions (linear aane and intuitionistic implications ranging over the current continuation) is introduced. Assumption Grammars (AGs), a variant of Extended DCGs handling multiple streams without the need of a preprocessing technique , are speciied within our framework. Equivalence with ...
متن کاملUppsala Theses in Computing Science 26 Compilation Techniques for Prolog Compilation Techniques for Prolog
Current Prolog compilers are largely limited to optimizing a single predicate at a time. We propose two methods to express the global control of Prolog programs. The rst method transforms a Prolog program into a continuation-passing style, where all operations have explicit success and failure continuations. The second method directly constructs a control ow graph from the Prolog program. This ...
متن کاملDesign of a Resolution Multiprocessor for the Parallel Virtual Machine
PAN is a process based Prolog system running in a distributed manner on the nodes of a virtual multiprocessor. It was designed to be a general purpose parallel logic programming system that would be resilient to software and hardware evolution. Programs can explicitly control parallelism through passing general terms synchronously or asynchronously among PAN’s Prolog engines. Alternatively seve...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
- TPLP
دوره 12 شماره
صفحات -
تاریخ انتشار 2012